package com.community.property.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.community.common.annotation.Excel;
import com.community.common.core.domain.BaseEntity;

/**
 * 投诉对象 complaint
 * 
 * @author ruoyi
 * @date 2025-10-28
 */
public class Complaint extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 投诉ID */
    private Long complaintId;

    /** 社区ID */
    private Long communityId;


    /** 房屋ID */
    private Long houseId;

    /** 投诉类型 */
    @Excel(name = "投诉类型")
    private String complaintType;

    /** 投诉房间号 */
    @Excel(name = "投诉房间号")
    private String roomNo;

    /** 投诉人 */
    @Excel(name = "投诉人")
    private String complainant;

    /** 投诉人电话 */
    @Excel(name = "投诉人电话")
    private String complainantPhone;

    /** 投诉时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "投诉时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date complaintTime;

    /** 投诉描述 */
    @Excel(name = "投诉描述")
    private String description;

    /** 图片(JSON数组) */
    @Excel(name = "图片(JSON数组)")
    private String images;

    /** 状态(待处理/处理中/已完成/已关闭) */
    @Excel(name = "状态(待处理/处理中/已完成/已关闭)")
    private Long status;

    /** 处理人 */
    @Excel(name = "处理人")
    private String handler;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 处理描述 */
    @Excel(name = "处理描述")
    private String handleDescription;

    /** 回复时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "回复时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date responseTime;

    /** 是否满意 */
    @Excel(name = "是否满意")
    private Long isSatisfied;


    public void setComplaintId(Long complaintId)
    {
        this.complaintId = complaintId;
    }

    public Long getComplaintId() 
    {
        return complaintId;
    }

    public void setCommunityId(Long communityId) 
    {
        this.communityId = communityId;
    }

    public Long getCommunityId() 
    {
        return communityId;
    }

    public void setHouseId(Long houseId) 
    {
        this.houseId = houseId;
    }

    public Long getHouseId() 
    {
        return houseId;
    }

    public void setComplaintType(String complaintType) 
    {
        this.complaintType = complaintType;
    }

    public String getComplaintType() 
    {
        return complaintType;
    }

    public void setRoomNo(String roomNo) 
    {
        this.roomNo = roomNo;
    }

    public String getRoomNo() 
    {
        return roomNo;
    }

    public void setComplainant(String complainant) 
    {
        this.complainant = complainant;
    }

    public String getComplainant() 
    {
        return complainant;
    }

    public void setComplainantPhone(String complainantPhone) 
    {
        this.complainantPhone = complainantPhone;
    }

    public String getComplainantPhone() 
    {
        return complainantPhone;
    }

    public void setComplaintTime(Date complaintTime) 
    {
        this.complaintTime = complaintTime;
    }

    public Date getComplaintTime() 
    {
        return complaintTime;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setImages(String images) 
    {
        this.images = images;
    }

    public String getImages() 
    {
        return images;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setHandler(String handler) 
    {
        this.handler = handler;
    }

    public String getHandler() 
    {
        return handler;
    }

    public void setHandleTime(Date handleTime) 
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime() 
    {
        return handleTime;
    }

    public void setHandleDescription(String handleDescription) 
    {
        this.handleDescription = handleDescription;
    }

    public String getHandleDescription() 
    {
        return handleDescription;
    }

    public void setResponseTime(Date responseTime) 
    {
        this.responseTime = responseTime;
    }

    public Date getResponseTime() 
    {
        return responseTime;
    }

    public void setIsSatisfied(Long isSatisfied) 
    {
        this.isSatisfied = isSatisfied;
    }

    public Long getIsSatisfied() 
    {
        return isSatisfied;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("complaintId", getComplaintId())
            .append("communityId", getCommunityId())

            .append("houseId", getHouseId())
            .append("complaintType", getComplaintType())
            .append("roomNo", getRoomNo())
            .append("complainant", getComplainant())
            .append("complainantPhone", getComplainantPhone())
            .append("complaintTime", getComplaintTime())
            .append("description", getDescription())
            .append("images", getImages())
            .append("status", getStatus())
            .append("handler", getHandler())
            .append("handleTime", getHandleTime())
            .append("handleDescription", getHandleDescription())
            .append("responseTime", getResponseTime())
            .append("isSatisfied", getIsSatisfied())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
